package com.ygqh.baby.service;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.ygqh.baby.ao.QueryInfo;
import com.ygqh.baby.ao.ResultSet;
import com.ygqh.baby.model.YgPromotionProductModel;
import com.ygqh.baby.po.YgProduct;
import com.ygqh.baby.po.YgProductActionGift;

public interface YgProductActionGiftService {

	List<YgProductActionGift> find();

	int findCount();

	YgProductActionGift findById(Long id);

	int deleteSoft(Long[] ids);

	int deleteSoft(Long id);

	int save(YgProductActionGift ygProductActionGift);

	int update(YgProductActionGift ygProductActionGift);

	int saveOrUpdate(YgProductActionGift ygProductActionGift);

	/**
	 * 
	 * @param productIds
	 *            (actionProducrIds) 入参
	 * @return List<Long> 返回类型 (giftProductIds)
	 * @author （guohao）
	 * @throws
	 * @date 2017年11月20日 下午12:19:50
	 * @version V1.0
	 */
	List<Long> getExitSingleGiftProductIds(Long[] productIds);

	/**
	 * 
	 * @Title: getSingleGiftList
	 * @param productIds
	 *            (actionProducrIds) 入参
	 * @return List<YgPromotionProductModel> 返回类型
	 * @author （guohao）
	 * @throws
	 * @date 2017年11月20日 下午12:19:19
	 * @version V1.0
	 */
	List<YgPromotionProductModel> getSingleGiftList(Long[] productIds);

	/**
	 * 
	 * @Title: checkSingleGift
	 * @param productIds
	 *            商品id集合（(actionProducrIds) ）
	 * @param skuId
	 *            （赠品skuId）
	 * 
	 *            入参
	 * @return Boolean 返回类型
	 * @author （guohao）
	 * @throws
	 * @date 2017年11月20日 上午11:36:13
	 * @version V1.0
	 */
	Boolean checkSingleGift(List<Long> productIds, Long skuId);

	List<YgProduct> findActionProduct(Long id);

	ResultSet<YgProductActionGift> search(QueryInfo queryInfo, String q, Date startDate, Date endDate);

	List<YgProduct> findProductGift(Long id);

	YgProductActionGift getDetail(Long id);

	/**
	 * 
	 * @Title: findActionGiftByGiftPId
	 * @param pId
	 *            （giftProductId）
	 * @return 入参
	 * @return List<YgProductActionGift> 返回类型
	 * @author （guohao）
	 * @throws
	 * @date 2017年11月20日 下午2:00:54
	 * @version V1.0
	 */
	List<YgProductActionGift> findActionGiftByGiftPId(Long pId);

	BigDecimal getSalePriceOfActionProduct(Long productId);

}
